﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Event_Planner.Models;
using System.Web.Security;

namespace Event_Planner.DataAccess
{
    public class Inicializar : System.Data.Entity.DropCreateDatabaseIfModelChanges<Models.EventPlannerContext>
    {
        protected override void Seed(EventPlannerContext context)
       {

           if (context.Usuarios.ToList().Count == 0)
           {
               MembershipUserCollection Personas = Membership.GetAllUsers();

               foreach (MembershipUser Persona in Personas)
               {
                   if (Persona.UserName != "Administrador")
                        Membership.DeleteUser(Persona.UserName, true);   
               }      

           }

           context = new EventPlannerContext();

           RegisterModel Usuario = new RegisterModel()
           {
               UserName = "Fernando",
               Email = "FernandoNatalino@hotmail.com",
               Password = "natalino!",
               ConfirmPassword = "natalino!"
           };

           MembershipCreateStatus createStatus;
           Membership.CreateUser(Usuario.UserName, Usuario.Password, Usuario.Email, "question", "answer", true, null, out createStatus);

           UsuariosModel usuariomodel = new UsuariosModel()
           {
                    NombreUsuario = Usuario.UserName,
                    EmailUsuario = Usuario.Email,
            };

           if (createStatus == MembershipCreateStatus.Success)
           {
               FormsAuthentication.SetAuthCookie(Usuario.UserName, false /* createPersistentCookie */);

               context.Usuarios.Add(usuariomodel);
               context.SaveChanges();

           }


           DateTime? FechaInicio = Convert.ToDateTime(DateTime.Now);

           DateTime? FechaFin = Convert.ToDateTime("15/08/2013 11:10:00");

            EventosModels Evento = new EventosModels()
           {
                NombreEvento = "Evento 1", 
                Descripcion = "Descripcion del evento 1",
                ImagenDelEvento = "../../Content/Images/Evento-Generico2.jpg",
                Lugar = "Alem 1000",
                FechaInicio = FechaInicio,
                FechaFinalizacion = FechaFin,
            };


            EventosModels Evento2 = new EventosModels()
            {
                NombreEvento = "Evento 2",
                Descripcion = "Descripcion del evento 2",
                ImagenDelEvento = "../../Content/Images/Evento-Generico3.jpg",
                Lugar = "Alem 1000",
                FechaInicio = FechaInicio,
                FechaFinalizacion = FechaFin,
            };


            EventosModels Evento3 = new EventosModels()
            {
                NombreEvento = "Evento 3",
                Descripcion = "Descripcion del evento 3",
                ImagenDelEvento = "../../Content/Images/Evento-Generico4.jpg",
                Lugar = "Alem 1000",
                FechaInicio = FechaInicio,
                FechaFinalizacion = FechaFin,
            };

            context.Eventos.Add(Evento);

            usuariomodel.EventosCreados = new List<EventosModels>();

            usuariomodel.EventosCreados.Add(Evento);
            usuariomodel.EventosCreados.Add(Evento2);
            usuariomodel.EventosCreados.Add(Evento3);

            usuariomodel.ContactosUsuario = new List<ContactosModel>();

            usuariomodel.OrganizadoresUsuario = new List<OrganizadoresModel>();

            context.SaveChanges();

            Event_Planner.Filters.Cache.ResetOutputCache();
            
        }
    }
}